/**
 * Copyright 2011 Renato de Jesus Manzoni
 * 
 * SED - Software Engineering and Dependability Research Group
 * 
 *     http://www.sed.ic.unicamp.br/
 * 
 * Distributed Systems Laboratory (LSD) in the Institute of Computing (IC) at University of Campinas (UNICAMP)
 * 
 *     http://www.lsd.ic.unicamp.br/
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package br.unicamp.ic.lsd.wscaa.config.model;

import java.util.List;

import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import com.thoughtworks.xstream.annotations.XStreamImplicit;

/**
 * @author Renato de Jesus Manzoni <rjmanzoni@gmail.com>
 * 
 */
@XStreamAlias("resolutionHandler")
public class ResolutionHandlers {

    @XStreamAsAttribute
    private String handlersPath;

    @XStreamAsAttribute
    private String defaultHandlerClass;

    @XStreamImplicit(itemFieldName = "handler")
    private List<Handler> handlers;

    /**
     * @param handlersPath
     * @param defaultHandlerClass
     * @param handlers
     */
    public ResolutionHandlers(String handlersPath, String defaultHandlerClass,
	    List<Handler> handlers) {
	super();
	this.handlersPath = handlersPath;
	this.defaultHandlerClass = defaultHandlerClass;
	this.handlers = handlers;
    }

    /**
     * @return the handlersPath
     */
    public String getHandlersPath() {
	return handlersPath;
    }

    /**
     * @param handlersPath
     *            the handlersPath to set
     */
    public void setHandlersPath(String handlersPath) {
	this.handlersPath = handlersPath;
    }

    /**
     * @return the defaultHandlerClass
     */
    public String getDefaultHandlerClass() {
	return defaultHandlerClass;
    }

    /**
     * @param defaultHandlerClass
     *            the defaultHandlerClass to set
     */
    public void setDefaultHandlerClass(String defaultHandlerClass) {
	this.defaultHandlerClass = defaultHandlerClass;
    }

    /**
     * @return the handlers
     */
    public List<Handler> getHandlers() {
	return handlers;
    }

    /**
     * @param handlers
     *            the handlers to set
     */
    public void setHandlers(List<Handler> handlers) {
	this.handlers = handlers;
    }
}
